1. Field of the Invention
Embodiments of the present invention relate generally to data transmission over computer networks and, more particularly, to evaluation of paths through graph-based data representation.
2. Description of the Related Art
Web-based applications or web applications provide services, such as streaming video and/or streaming audio services, in a distributed manner over the Internet. Additionally, a large number of such web-based applications communicate over the Internet via hypertext transfer protocol (HTTP), a ubiquitous and well-supported specification for transferring data over the Internet. In such applications, a client machine requests one or more resources, and a server machine provides the requested resources in response. Typical network latency on the order of tens of milliseconds or more generally means that each such request requires a relatively large amount of time to be fulfilled.
To address such latencies, caching schemes are oftentimes employed where frequently used copies of resources are stored in a memory local to the client machine for later quick retrieval. However, currently available caching schemes are not well suited to handling a large number of concurrent data requests over the Internet while also being compatible with HTTP.
For example, web browsers have built-in caching systems that are compatible with HTTP. When a web browser retrieves a requested web page, the web browser stores the retrieved web pages in a local cache, with the uniform resource locator (URL) acting as the cache key for the web page stored in the cache. Unfortunately, HTTP message headers are relatively bulky such that, in many cases, the size of the data message payload is dwarfed by the size of the HTTP header. Thus, when small messages are transferred with HTTP, a relatively large amount of bandwidth is consumed only for the HTTP header, which includes no payload data.
Further, web browsers typically support only a limited number of concurrent HTTP connections. Thus, if a web-based application wishes to request a large number of resources via HTTP, then the web-based application cannot transmit all of those requests in parallel. Rather, the web-based application must wait until some of the requests complete until sending out additional requests.
Additionally, individual HTTP requests can only be processed in serial. This means that requests cannot be processed out of order in order to return quickly-processed requests earlier than more slowly-processed requests. For these reasons, built-in web browser caching systems are not structured to handle multiple concurrent data requests via HTTP effectively.
As the foregoing illustrates, what is needed in the art is an improved approach for handling multiple concurrent data requests over networks, such as the Internet.